#!/bin/bash
# 0.设置目录变量
OHOS_ROOTFS=../../../out/ohos-arm-release/packages/phone/images

# 1.先进行清理操作
sudo rm -rf rootfs
sudo rm -rf tmpfs
sudo rm -f rootfs.ext3

sudo mkdir rootfs
# 2.创建Linux中的必要文件夹
sudo mkdir -p rootfs/bin   # /bin包含普通用户和超级用户都能使用的命令
sudo mkdir -p rootfs/sbin  # /sbin包含系统运行的关键可执行文件以及一些管理程序
sudo mkdir -p rootfs/home  # /home普通用户的工作目录，没有普通用户都会在这里建立一个文件夹
sudo mkdir -p rootfs/etc   # /etc存放系统配置文件以及应用程序的配置文件
sudo mkdir -p rootfs/lib   # /lib存放所有应用程序的共享文件以及内核模块
sudo mkdir -p rootfs/proc/ # /proc目录是内核在内存中映射的实时文件系统，存放内核向用户应用程序提供的信息文件
sudo mkdir -p rootfs/sys/  # /sys是文件系统挂载的地方
sudo mkdir -p rootfs/tmp/  # /tmp存放系统或应用程序产生的临时文件
sudo mkdir -p rootfs/root/ # /root是超级用户的用户目录
sudo mkdir -p rootfs/var/  # /var存放假脱机数据以及系统日志
sudo mkdir -p rootfs/mnt/  # /mnt用于加载磁盘分区和硬件设备挂载点
sudo mkdir -p rootfs/usr   # /usr包含所有用户的二进制文件和库文件等
sudo mkdir -p rootfs/dev/  # /dev用于存放设备文件
sudo mkdir -p rootfs/system

# 3.将open harmony 根文件系统文件放到rootfs下
sudo cp -arf ${OHOS_ROOTFS}/root/*  rootfs/
sudo cp -arf ${OHOS_ROOTFS}/system/*  rootfs/system/
sudo cp -arf ${OHOS_ROOTFS}/vendor/  rootfs/

# 4.创建设备文件
sudo mknod rootfs/dev/tty1 c 4 1
sudo mknod rootfs/dev/tty2 c 4 2
sudo mknod rootfs/dev/tty3 c 4 3
sudo mknod rootfs/dev/tty4 c 4 4
sudo mknod rootfs/dev/console c 5 1
sudo mknod rootfs/dev/null c 1 3

# 5.生成一个空的文件作为文件系统
sudo dd if=/dev/zero of=rootfs.ext3 bs=1M count=1024
sudo mkfs -t ext3 rootfs.ext3

# 6.将文件系统挂载到tmpfs目录下
sudo mkdir -p tmpfs
sudo mount -t ext3 rootfs.ext3 tmpfs/ -o loop

# 7.将之前创建的文件系统相关的文件放到通过tmpfs放到rootfs.ext3文件系统中去
sudo cp -r rootfs/*  tmpfs/
sudo umount tmpfs

sudo chmod 777 rootfs.ext3